#ifndef LOG_SYSTEM_H_
#define LOG_SYSTEM_H_

#include <time.h>
#include "auth_system.h"


// 日志操作的一些动作
typedef enum {
	LOG_LOGIN,		//登录事件
	LOG_LOGOUT,		//登出事件
	LOG_ADD_ITEM,		//添加货物
	LOG_DEL_ITEM,		//删除货物
	LOG_UPDATE_ITEM,		//修改货物
	LOG_NUMS			// 日志类型总数
}LogAction;

static char *action_string[LOG_NUMS] = {
	"登录",
	"登出",
	"添加",
	"删除",
	"更新",
};


// 日志结构体定义
typedef struct LogEntry{
	char date[50];	//日期
	LogAction action;	//操作类型
	char username[32];	//操作用户
	int item_id;		//货物id
	char description[128];	//描述信息
	struct LogEntry *prev;
	struct LogEntry *next;
}LogEntry;


/*
** 功能：初始化日志链表
*/ 
extern void log_init(void);

/*
** 功能：添加日志
** action：操作类型
** user：操作用户
** item_id：货物id
** desc：操作说明
*/ 
extern void log_add(LogAction action, const char *user, int item_id, const char *desc);

/*
** 功能：保存日志为文本
** filename：文件名
*/ 
extern void log_save_text(const char *filename);

/*
** 功能：加载日志文本
** filename：文件名
*/ 
extern void log_load_text(const char *filename);

/*
** 功能：保存日志为二进制
** filename：文件名
*/ 
extern void log_save_bin(const char *filename);


/*
** 功能：加载日志二进制
** filename：文件名
*/ 
extern void log_load_bin(const char *filename);


/*
** 功能：显示最近N条记录
** count：多少条
*/ 
extern void log_show_recent(int count);


/*
** 功能：清空日志链表
** count：多少条
*/ 
extern void log_cleanup(void);

#endif